package com.zhiteng.controller;

import java.util.List;

import javax.servlet.http.HttpSession;

import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;

import com.zhiteng.entity.Item;
import com.zhiteng.service.ItemService;
import com.zhiteng.utils.common.ZTResult;
import com.zhiteng.vo.QueryItemVo;

/**  
* <p>Title: ItemController.java</p>  
* <p>Description: 积分礼品Controller</p>  
* @author dragon  
* @date 2018年12月26日  
* @version 1.0  
*/
@RequestMapping("/item")
@Controller
public class ItemController {
	@Autowired
	private ItemService itemService;
	
	/**
	 * 
	* @Title: saveItem  
	* @Description: 新增 / 更新积分礼品
	* @param title
	* @param num
	* @param price
	* @param category
	* @param flag
	* @param rule
	* @param description
	* @param imageFile
	* @return ZTResult<Void>   
	* @throws
	 */
	/*@RequestMapping("/saveItem")
	@ResponseBody
	public ZTResult<Void> saveItem(Item item,HttpSession session){
		if (StringUtils.isAnyBlank(item.getTitle(), item.getDescription(), item.getFlag()+"",
				item.getNum()+"", item.getPrice()+"",item.getRule(),item.getCategory()+"")) {
			return ZTResult.result(1, "保存失败，请检查参数");
		}
		if(item.getImageFile()==null) {
			return ZTResult.result(1, "保存失败，请上传图片");
		}
		//	获取拓展名（.jpg,包括小圆点） 
		String extName = item.getImageFile().getOriginalFilename()
					.substring(item.getImageFile().getOriginalFilename().lastIndexOf("."));
		//	图片格式校验
		if(!extName.matches(".JPEG|.jpeg|.JPG|.jpg|.PNG|.png|.GIF|.gif")) return ZTResult.result(1,"保存失败，图片格式不正确");
		
		try {
			int count = itemService.saveItem(item,session);
			if(count==1) {
				return ZTResult.result(0,"保存成功");
			}
			return ZTResult.result(1,"保存失败");
		} catch (Exception e) {
			e.printStackTrace();
			return ZTResult.result(1,"保存失败");
		}
		
	}*/
	
	/**
	 * 
	* @Title: saveItem  
	* @Description: 新增 / 更新积分礼品
	* @param id (更新时需要，新增时不需要)
	* @param title
	* @param num
	* @param price
	* @param category
	* @param flag
	* @param rule
	* @param description
	* @param image
	* @return ZTResult<Void>   
	* @throws
	 */
	@RequestMapping("/saveItem")
	@ResponseBody
	public ZTResult<Void> saveItem(Item item){
		if (StringUtils.isAnyBlank(item.getTitle(), item.getDescription(), item.getFlag()+"",
				item.getNum()+"", item.getPrice()+"",item.getRule(),item.getCategory()+"",item.getImage())) {
			return ZTResult.result(1, "保存失败，请检查参数");
		}
		if(item.getFlag()==null ||item.getNum()==null || item.getPrice()==null || item.getCategory()==null) {
			return ZTResult.result(1, "保存失败，请检查参数");
		}
		int count = itemService.saveItem(item);
		if(count==1) {
			return ZTResult.result(0,"保存成功");
		}
		return ZTResult.result(1,"保存失败");
	}
	
	/**
	 * 
	* @Title: queryItemsByQueryItemVo  
	* @Description: 根据条件查询商品  
	* @param created 	上架时间，格式：2018-12-08	（非必须）
	* @param category	分类 （非必须）
	* @param title		标题（最大长度100） （非必须）
	* @return ZTResult<Object>   
	* @throws
	 */
	@RequestMapping("/queryItems")
	@ResponseBody
	public ZTResult<Object> queryItemsByQueryItemVo(QueryItemVo queryItemVo){
		List<Item> itemList = itemService.queryItemsByVo(queryItemVo);
		return ZTResult.result(0,"查询成功",itemList);
	}
	
	/**
	 * 
	* @Title: deleteItemById  
	* @Description: 删除积分礼品
	* @param itemId 积分礼品id/编号
	* @return ZTResult<Void>   
	* @throws
	 */
	@RequestMapping("/deleteItem")
	@ResponseBody
	public ZTResult<Void> deleteItemById(@RequestParam(name = "itemId") Long itemId){
		int count = itemService.deleteItemById(itemId);
		if(count==1) return ZTResult.result(0,"删除成功");
		return ZTResult.result(1,"删除失败");
	}
	
	/**
	 * 
	* @Title: queryItemById  
	* @Description: 根据id查询积分礼品 
	* @param itemId
	* @return ZTResult<Item>   
	* @throws
	 */
	@RequestMapping("/queryItem")
	@ResponseBody
	public ZTResult<Item> queryItemById(@RequestParam(name = "itemId") long itemId){
		Item item = itemService.queryItemById(itemId);
		if(item!=null) return ZTResult.result(0,"查询成功",item);
		return ZTResult.result(1,"未找到该积分礼品");
	}
	
	/**
	 * 
	* @Title: queryNewItems  
	* @Description: 查询最新商品  
	* @return ZTResult<List<Item>>   
	* @throws
	 */
	@RequestMapping("/queryNewItems")
	@ResponseBody
	public ZTResult<List<Item>> queryNewItems(){
		List<Item> itemList = itemService.queryNewItems();
		return ZTResult.result(0,"查询成功",itemList);
	}
	
}
